package com.pencilisland.pay.mgt.console.service;

import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartFile;

import com.pencilisland.pay.mgt.console.entity.SysUser;

/**
 * 系统用户服务
 * 
 * @author Breeze
 *
 */
public interface UserService {
	/**
	 * 分页查询用户列表
	 * 
	 * @param cretiria
	 * @param start
	 * @param length
	 * @return
	 */
	Page<SysUser> userList(SysUser cretiria, int start, int length);

	/**
	 * 保存更新
	 * 
	 * @param user
	 * @return
	 */
	SysUser save(SysUser user);

	/**
	 * 获取用户数据
	 * 
	 * @param id
	 * @return
	 */
	SysUser loadData(Long id);

	/**
	 * 删除用户
	 * 
	 * @param id
	 */
	void delete(Long id);

	/**
	 * 通过登录名查询用户
	 * 
	 * @param str
	 * @return
	 */
	SysUser findByLoginName(String str);

	/**
	 * 获取当前登录用户
	 * 
	 * @return
	 */
	SysUser findSessionUser();

	/**
	 * 修改密码
	 * @param userId
	 * @param oldPassword
	 * @param newPassword
	 * @param newPasswordConfirm
	 * @throws Exception 
	 */
	void modifyPassword(Long userId, String oldPassword, String newPassword, String newPasswordConfirm) throws Exception;

	/**
	 * 上传用户头像
	 * @param file
	 * @throws Exception 
	 */
	void uploadAvatar(MultipartFile file) throws Exception;

	/**
	 * 获取用户头像
	 * @return
	 */
	byte[] avatar();

	/**
	 * 重置用户密码
	 * @param userId
	 */
	void resetPassword(Long userId);
}
